\documentclass[latex]{subfiles}
\begin{document}
\part{宏包}
\section{xcolor、color}
\begin{table}[H]
    \centering
    \caption{\texttt{xcolor}宏包预定义颜色}
    \begin{tabular}{lll}
        \scol{black}    & \scol{darkgray}   & \scol{lime} \\ 
        \scol{pink}     & \scol{violet}     & \scol{blue}\\
        \scol{purple}   & \scol{magenta}  & \scol{gray}      \\
        \scol{white}    & \scol{brown}      & \scol{green} \\
        \scol{olive}    & \scol{red}        &	\scol{yellow}\\
        \scol{lightgray} & \scol{orange}    & \scol{teal} \\
        \scol{cyan} &&
    \end{tabular}
\end{table}
\begin{table}[H]
    \caption{我定义的几种颜色}
    \begin{tabular}{lll}
        \scol{coolive} & \scol{coorange} & \scol{cored} \\ 
        \scol{cocyan} & \scol{coyellow} & \scol{coteal} \\
        \scol{cogteal}&\scol{comagenta}  & \scol{coblue}\\
        \scol{cobgray} & \scol{cobyellow} & \scol{cobred}\\
        \scol{cobblue} & \scol{cogreen} & \scol{eye}\\
        \scol{xblue} & \scol{ebook} & 
    \end{tabular}
\end{table}

\section{geometry：页面布局}
\tcboxverb{\geometry{showframe}}可以显示页面框架

\section{todonotes：Todo}
建议在页边边距较大时使用。
\begin{description}
\item[\cmd{todo}] 在侧边显示待办事项。
\item[\cmd{listoftodos}] 集中显示待办列表。
\item[\cmd{todototoc}] 将todo事项加入目录，要在 \cmd{listoftodos} 命令之前使用。
\end{description}

\section{changes：批注、修改}
建议使用。
\begin{codeup}
\listofchanges
\added{要添加的内容}\\
\deleted{要删除的内容}\\
\replaced{要添加的内容}{被替换掉的内容}\\
\highlight{高亮的内容}\\
\end{codeup}
另外在加载\pkg{changes}包时，可以加上\myarg{draft} 或 \myarg{final}两个参数之一，分别表示草稿和终稿。

另外还有个\cmd{comment}命令，可以在页边添加评论，但可能会提示已定义的错误，可尝试这样解决，在加载包之前先解除其定义：
\begin{code}
\let\comment\undefined
\end{code}

\section{siunitx：数字单位}
\begin{codeup}
\qtyproduct{90x200}{mm} \\
\qty{340}{m/s} \\
\num{1.2345e88}
\end{codeup}
这个包和\pkg{stix}包有些冲突。

\section{pdfpages：导入pdf}
插入pdf文档：
\begin{code}
\includepdf[pages={1,2}]{1.pdf}
\end{code}

\section{phfnote：笔记宏包}
一个笔记宏包，具体看文档。
\begin{code}
\usepackage[title=pretty2]{phfnote}
\end{code}

\section{zitie：字帖}


%\comment{这里放评论内容，不会显示在正文}
\section{xpinyin：注音}
\begin{code}
\xpinyin*{给汉字注音}
\end{code}

\section{nag：检查过时命令}
检查有没有过时的命令

\section{lineno：显示行号}
可以在页面左边显示行号
\begin{code}
%\usepackage[pagewise,left]{lineno}
\linenumbers
\end{code}

\section{wrapfig：图文混排}
图文混排：
\begin{codeup}
\begin{wrapfigure}{r}{2cm}
\includegraphics[width=0.3\textwidth]{logo.png}
\label{fig:wrap}
\end{wrapfigure}
此\env{wrapfigure}环境有4参数和2参数的写法，本示例第1个参数是图的位置，还有rRlLiRoOhb等位置可选，第2个参数是图的宽度。
\end{codeup}
\begin{code}
\begin{window}[〈下降行数〉,〈水平位置〉,〈内容〉,〈内容说明〉]
    〈绕排文字〉
\end{window}
\begin{figwindow}[〈下降行数〉,〈水平位置〉,〈图形〉,〈图标题〉]
    〈绕排文字〉
\end{figwindow}
\end{code}
如：
\begin{codeup}
\begin{figwindow}[1,c,{\mbox{%
\includegraphics[width=1cm]{logo}}},{logo}]
「可是哈卜拉姆再聪明...可是我偏不喜欢。但是不喜欢又能怎么样，他还是死皮赖脸的缠着我。」
\end{figwindow}
\end{codeup}

\section{ulem：下划线}
\pkg{ulem}，具体如下：
\begin{codeup}
\uline{下划线} \\
\uuline{双下划线} \\
\dashuline{虚下划线} \\
\dotuline{点下划线} \\
\uwave{波浪线} \\
\sout{删除线} \\
\xout{斜删除线}\\
\emph{强调}
\end{codeup}
另外还有个\cmd{strong},不知道是哪个包的，\strong{可以加粗}。
\section{zhlipsum：随机中文}
产生随机中文文本
\begin{code}
\usepackage{zhlipsum}
\zhlipsum
\end{code}

\section{minted：漂亮的代码环境}
但要使用\myarg{xelatex -shell-escape}命令来编译。
\begin{code}
%\usepackage{minted}
\mint{python}|import this|
\begin{minted}{python}
def boring(args = None):
pass
\end{minted}
\end{code}

\section{listings：代码环境}
一种抄录环境，还可设置自动换行：
\begin{code}
\begin{lstlisting}[breaklines]
我会自动换行我会自动换行 我会自动换行我会自动换行我会自动换行
\end{lstlisting}
\end{code}

另外可先在导言区设置：
\begin{code}
\lstset{basicstyle={
    \normalfont\sffamily},
breaklines}
然后用下面的命令抄录短代码
\lstinline|<code>|
\end{code}


\section{shortvrb：短代码抄录}
用更短的符号作抄入代码如：
\begin{code}
\usepackage{shortvrb}
\MakeShortVerb`
\end{code}
但要注意和其他命令产生冲突的可能性。

\section{amssymb,stmaryrd：数学符号}
数学、符号等。
\begin{code}
$\checkmark$
$\boxempty$
\end{code}

\section{amsthm:数学公式、环境等}
比如proof、 theorem、 example等。
\section{markdown}
使用markdown环境时，注意文本要顶格写，不然标题等都无法识别。

\section{varwidth：自然长度文本环境}
基于minipage的环境，以文本自然长度为准。
\begin{codeup}
\fbox{
\begin{varwidth}{12em}
    其实地上本没有路。
\end{varwidth}}
\fbox{\begin{minipage}{12em}
    其实地上本没有路。
\end{minipage}}
\end{codeup}

\section{needspace：需要空间}
在设置ctexset时，可以用它来设置是否要换页。如：
\begin{code}
\ctexset{section/break=
\Needspace{.5\textheight}}
\end{code}


\section{CJKfntef：多种下划线}
\begin{codeup}
\CJKunderwave*{\CJKunderdot{你好}}
\CJKunderwave*{\hfill}
\end{codeup}
设置不同的下划线、点，具体请看文档，不过据说这个包有点过时。

\section{wallpaper：墙纸}
可以设备背景图片。如：
\begin{code}
\CenterWallPaper{1}{wall.jpg}|
\end{code}

\section{syntonly：只检查语法}
在导言区加入\cmd{syntaxonly},会只排查语法错误而不生成任何文档,不过可能会引起错误。
    
\section{booktabs：三线表}
\pkg{booktabs}宏包提供了三个命令来绘制三线表： \cmd{toprule} , \cmd{midrule} 与 \cmd{bottomrule}。如中间需要更多的横线可以通过\cmd{midrule} 添加。
\begin{codeup}
\begin{tabular}{cccc}
    \toprule
    & \multicolumn{3}{c}{Numbers} \\
    \cmidrule{2-4}
    & 1 & 2 & 3 \\
    \midrule
    Alphabet & A & B & C \\
    Roman & I & II& III \\
    \bottomrule
\end{tabular}
\end{codeup}
\section{animate：动态图}
需使用 \pkg{animate}、 \pkg{graphicx} 两个宏包。
\begin{code}
\begin{figure}[!hbt]
    \centering
    \animategraphics[controls, autoplay, loop,
    width=0.6\linewidth]{2}{Py3-matplotlib-}{0}{98}
\end{figure}
\end{code}

\section{pgfplots：函数图像}
\begin{codeup}
%\usepackage{pgfplots}
\begin{tikzpicture}[scale=0.7]
\begin{axis}[xlabel=$x$,ylabel=$\sin x$,%axis y line=middle,axis x line=middle
    ]
    \addplot[mark=none,blue,domain=-4:4,samples=1000]{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{codeup}

\section{xparse：参数定制}
\begin{code}
%\usepackage{xparse}
\DeclareDocumentCommand{cmd}{xargs}{def}
\DeclareDocumentEnvironment{envname}{xargs}{begdef}{enddef}
\DeclareTCBox{cmd}{xargs}{options}
……
\end{code}
部分参数：
\begin{description}
    \item[m] 标准必选参数。
    \item[v] 读取抄录选项。
    \item[R] 与r类似，有缺省标记。
    \item[o] 可选项，位于方括号内。
    \item[O] 可选项，可附加默认选项。
    \item[D] 可选定界，与d类似有默认。
    \item[s] 可选的星号,当星号存在时会返回 BooleanTrue 否则返回 BooleanFalse ，可使用\cmd{IfBooleanF}命令来处理。
\end{description} 

\section{tabularray:表格宏包}
\begin{codeup}
%\usepackage{tabularray}
%\SetTblrInner{hlines,vlines}
%\SetTblrInner[mytabu]{hlines,vlines}%定制表格环境
\begin{tblr}{%
    cells  = {l, m},
    row{1} = {mode = math,c},
    column{1} = {mode = math},
    hline{2,Z} = {2-Z}{0.15em},
    vline{2,Z} = {2-Z}{0.15em},
    hline{3} = {2-Z}{0.08em},
    vline{Y} = {2-Z}{0.08em},
}
&x_1 & x_2 & x_3 &  \\
z   & 811  & 911   & 0   & 5 \\
x_3 & 212  & 2   & 1   & 1 \\
x_4 & 31  & -2 & 0    & 2 \\
x_5 & 0  &  3  & 0   & 3 \\
\end{tblr}
\end{codeup}

\section{moderncv：简历}
\begin{code}
%\usepackage{moderncv}
\moderncvstyle 简历的样式
\moderncvcolor 简历的颜色
\familyname 设置姓名
……
\makecvtitle 打印简历标题
\section 和 \subsection 设置了节和小节
\cventry{时间}{职位/头衔}{雇主/学校}{地点}{短说明}{长说明,另起一行}
\cvitem{项目标题}{说明}
……
具体见doc文档（运行命令）：
texdoc moderncv
\end{code}

\section{exam-zh：试卷模板}
可以使用\tcboxverb{exam-zh}文档类，当然也可以使用\pkg{exam-zh-chioces}  \pkg{exam-zh-question} 等宏包，具体内容请查看exam-zh手册。

\section{qrcode：二维码}
\begin{codeup}
使用\cmd{qrcode}命令
\qrcode[height=2em]{即可将这段文本以二维码形式显示出来。}
\end{codeup}

\section{subfiles：子文档}
主文档加载\pkg{subfiles}宏包，以 \cmd{subfile} 命令导入子文档。具体如下：
\begin{code}
%主文档：
\usepackage{subfiles}
\subfile{子文档名}
%子文档：
\documentclass[主文档名]{subfiles}
\begin{document}
……
\end{document}
\end{code}

\section{engord：英文数字序数}

\pkg{engord}宏包可以输出1st、2nd、3rd等形式的序数。

使用的是 \cmd{engordnumber{1}} 命令。

\cmd{engordraisefalse} 可以关闭上标模式。
\end{document}
